2025年3月蓝桥杯蓝桥Python(STEMA)中/高级
STEMA
2025
2025-06-09 19:15:38
95次
一、单选题
二、编程题
编程实现:
环形地铁有 n 个站点,按顺时针方向站点编号依次为 1 到 n(n 号站与 1 号站相邻),乘客可在任意站点顺时针或逆时针乘坐。
小可从 m 号站进站前往 n 号站,请计算他最少需要乘坐多少站(站数计算不包括 m 号站)。
例如:n = 6,m = 4;环形地铁有 6 个站,小可从 4 号站前往 6 号站,顺时针乘坐需要 2 站(4→5→6),
逆时针乘坐需要 4 站(4→3→2→1→6),故最少需要乘坐 2 站。

输入描述:
第一行输入一个整数 n(4≤n≤1000),表示环形地铁的站点数量;
第二行输入一个整数 m(1≤m<n),表示小可进站的站点编号。
输出描述:
输出一个整数,表示小可最少需要乘坐的站数。
样例输入:
6 4
样例输出:
2
【知识点】 蓝桥杯Python中/高级
编程实现:
有 n 颗棋子排成一排,每颗棋子的颜色为白色(用 1 表示)或黑色(用 0 表示)。每次可以选择从最左端或者最右端移除一颗棋子,目标是使剩余的棋子中白色棋子数量为 m。
给定两个整数 n 和 m,及 n 颗棋子的颜色排列。请计算最少要移除多少颗棋子,才能使剩余的棋子中白色棋子数量为 m;如果无法实现该目标,输出 -1。
例 1:n = 8,m = 2;8 颗棋子的颜色分别是 0 1 0 1 1 0 0 1,要使剩余的棋子中白色棋子数量为 2,最少需要移除 3 颗棋子,移除方案如下:
第一次,移除最右端的白色棋子,移除后剩余棋子的颜色分别是 0 1 0 1 1 0 0;
第二次,移除最左端的黑色棋子,移除后剩余棋子的颜色分别是 1 0 1 1 0 0;
第三次,移除最左端的白色棋子,移除后剩余棋子的颜色分别是 0 1 1 0 0;
此时,剩余棋子中白色棋子数量为 2。
例 2:n = 5,m = 3;5 颗棋子的颜色分别是 1 0 0 1 0,无论如何移除棋子都不能使剩余棋子中白色棋子数量为 3,则输出 -1。
输入描述:
第一行输入两个整数 n,m(1≤n,m≤1000),分别表示初始棋子数量和目标白色棋子数量,整数之间以一个空格隔开;
第二行输入 n 个整数(整数为 1 或 0,1 表示白色棋子,0 表示黑色棋子),表示从左到右每颗棋子的颜色,整数之间以一个空格隔开。
输出描述:
输出一个整数,表示最少要移除多少颗棋子,才能使剩余棋子中白色棋子的数量为 m;如果无论如何移除棋子都不能使剩余棋子中白色棋子数量为 m,则输出 -1。
样例输入:
8 2 0 1 0 1 1 0 0 1
样例输出:
3
【知识点】 蓝桥杯Python中/高级

